'use strict';

module.exports = app => {
  const { STRING, INTEGER, TEXT, DATE } = app.Sequelize;

  const Article = app.model.define('article', {
      id: {
        type: INTEGER,
        primaryKey: true,
        allowNull: false,
        autoIncrement: true
      },
      title: {
        type: STRING,
        allowNull: false
      },
      content: {
        type: TEXT,
        allowNull: false
      },
      // 文章顶部图片
      picture: {
        type: STRING,
        allowNull: true
      },
      // 是否审核通过，1待审核，2审核中，3审核通过，4审核不通过，审核不过前端不显示
      status: {
        type: INTEGER,
        allowNull: false,
        defaultValue: 1
      },
      // 文章类型，1草稿（不需进行审核），2发布（需进行审核）
      category: {
        type: INTEGER,
        allowNull: false,
        defaultValue: 1
      },
      // 浏览数
      view: {
        type: INTEGER,
        allowNull: false,
        defaultValue: 0
      },
      // 点赞数
      like: {
        type: INTEGER,
        allowNull: false,
        defaultValue: 0
      },
      created_at: DATE,
      updated_at: DATE
  });

  Article.associate = function () {
    app.model.Article.belongsTo(app.model.User, {
      foreignKey: {
        name: 'author_id',
        allowNull: true
      },
      targetKey: 'id'
    })
    app.model.Article.belongsToMany(app.model.Collection, {
        through: app.model.ArticleCollection,
        foreignKey: 'article_id',
        otherKey: 'collection_id'
    })
  }

  return Article;
}